Method and apparatus for managing bookmark information for content stored in a networked media server

ABSTRACT

A method and apparatus for managing bookmark information of a media server through a network based on the UPnP AV standard is disclosed. If a request for bookmarking a content item is made, a bookmark item is created and the created bookmark item is linked to the content item by adding the ID of the created bookmark item to the property information of the content item and recording the ID of the content item to be bookmarked in the created bookmark item.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.11/120,930, filed May 2, 2005, now U.S. Pat. No. 8,010,620, whichpursuant to 35 U.S.C. §119(a), claims the benefit of earlier filing dateand right of priority to Korean Application No. 10-2004-0031151, filedon May 3, 2004, the contents of which are hereby incorporated byreference herein in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to bookmarking a content object and, moreparticularly, but not by way of limitation, to a method and apparatusfor managing bookmark information for content objects stored in a mediaserver through a network based on the UPnP AV standard.

2. Description of the Related Art

As the computing power of small devices improves, various inexpensiveand universal networking techniques are appearing and beingcommercialized.

With the addition of Plug and Play (PnP) capabilities to the PCoperating system it became a great deal easier to setup, configure, andadd peripherals to a PC. Universal Plug and Play (UPnP) is an extensionof the PnP technique to the entire network with a view to enablingdiscovery and control of networked devices and services, such asnetwork-attached printers, Internet gateways, and consumer electronicsequipment. The UPnP is based upon Internet technologies such as TCP/IP,HTTP, and XML.

The UPnP AV architecture defines three main logical entities: a mediaserver (MS), a media renderer (MR), and an AV control point (CP). Themedia server (MS) has access to entertainment content and can send thatcontent to another UPnP AV device via the network. The media renderer(MR) is able to receive external content from the network and render iton its local hardware. The AV control point (CP) coordinates theoperation of the media server (MS) and the media renderer (MR).

In the UPnP architecture, each time a UPnP action such as a browsingaction from the AV control point (CP) comes in, the media server (MS)exposes information on its content. The content selected through theuser interface of the AV control point (CP) is transferred to the mediarenderer (MR) from the media server (MS) using a streaming technique andplayed by the media renderer (MR).

The playback of the content can be stopped by user's request while thecontent is being played and then resumed afterward. For example, a usermay turn off an MP3 player while listening to music and want to resumeplaying of the music from the stopped position later. Similarly, a usermay stop a DVD player while watching a DVD movie and want to resume themovie from the stopped position later. To this end, content playersautomatically store information about the state of the content beingplayed when power is turned off or playback is stopped. Such a functionis called automatic bookmarking.

Generally, bookmarking refers to storing the URL (uniform resourcelocator) of a web page that you visit using a web browser such as theNetscape navigator so that you can revisit the page easily at a latertime. Once the URL of a web page is stored in the bookmark, the user canselect the URL from the bookmark to visit the web page without enteringthe URL.

The media server in a home network can store a lot of contents, i.e.,media files and can provide the same content to a plurality of userssimultaneously through the network. The simple bookmarking functionwhich stores the position at which the playing of the content is stoppedis not appropriate when a plurality of users are playing the samecontent. The media server, therefore, requires an improved bookmarkingfunction.

SUMMARY OF THE INVENTION

In view of the shortcomings of the prior art, it is an object of thepresent invention to provide a method and apparatus that allows aplurality of users to bookmark contents stored in a media serverindividually.

It is another object of the invention to provide a method and apparatusthat allows individual bookmarking of media contents based on the UPnPAV standard.

According to the present invention, if a request for bookmarking acontent object is received, a bookmark object is created and an ID ofthe created bookmark object is added to property information of thecontent object.

According to the present invention, when a bookmark object is created,the ID of the content object to be bookmarked is included in the createdbookmark object.

In one embodiment of the invention, the directory for storing bookmarkobjects is separated from the directory for storing content objects.

In another embodiment, bookmark objects are stored in a container placedin the directory for storing content objects.

In one embodiment of the invention, a bookmark object comprises abookmark object ID for uniquely identifying the bookmark object, an IDof the bookmarked object, a title written in a user-readable format, abookmark object class, a UDN for storing the ID of rendering controlservice (RenderingControl Service) and/or the ID of AVTransport service(AVTS) of a media renderer which was presenting the bookmarked object,and a list of state variables for storing the state variables of theRenderingControl service and AVTransport service.

In one embodiment of the invention, if a content object is bookmarked, abookmark object is created and the ID thereof is added to metadataindicating the property of the bookmarked object.

In one embodiment of the invention, if a request for bookmarking acontent is received, the control point sends a request for creating abookmark to the media server. Receiving the request, the media servercreates a bookmark object based upon the received information and addsthe ID of the created bookmark object to metadata of the content objectto be bookmarked.

In another embodiment of the invention, if a request for bookmarking acontent is received, the control point sends a request for creating abookmark to the media server. Receiving the request, the media servercreates a bookmark object and sends the ID of the created object to thecontrol point. The control point adds the ID of the bookmark object tometadata of the content object to be bookmarked and requests the mediaserver to update metadata of the content object.

In one embodiment of the invention, the ID of a created bookmark objectis determined according to a rule defined by the media server storingcontent objects.

In one embodiment of the invention, the class of the bookmark object isdefined to “object.item.bookmarkitem”.

BRIEF DESCRIPTION OF THE DRAWINGS

The above features and other advantages of the present invention will bemore clearly understood from the following detailed description taken inconjunction with the accompanying drawings, in which:

FIG. 1 illustrates a directory structure for storing bookmark objects inaccordance with one embodiment of the present invention;

FIG. 2 illustrates a bookmark object structure in accordance with thepresent invention;

FIGS. 3 a and 3 b illustrate the procedures for creating a bookmarkobject according to preferred embodiments of the present invention; and

FIG. 4 illustrates the relation between a content object and a pluralityof bookmark objects created in accordance with one embodiment of thepresent invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In order that the invention may be fully understood, preferredembodiments thereof will now be described with reference to theaccompanying drawings.

The preferred embodiments of the present invention satisfy the followingconditions for implementing a bookmark functionality based upon the UPnPAV standard.

Every object provided by the media server in the UPnP AV architecturecan be bookmarked.

Because it is not that the media server provides only a single contentto users, contents can be bookmarked individually.

One content can be bookmarked at several different locations within thecontent.

The list of saved bookmarks can be displayed to allow a bookmark can beselected therefrom.

Information on all of the saved bookmarks can be provided to the usersand all of the bookmarks are placed in a single container for making iteasy to select one bookmark from among the bookmarks.

Because the number of bookmarks that can be displayed may be limited,information specifying the number of bookmarks to be displayed can beprovided.

Information on the starting index specifying the starting position forsearching bookmarks can be provided.

Information on the number of the saved bookmarks can be provided.

If a bookmark is selected, content can be played or removed using theinformation of the selected bookmark.

FIG. 2 illustrates a bookmark object structure in accordance with thepresent invention. The structured bookmark objects are stored in aparticular container of the media server.

The bookmark object structure shown in FIG. 2 contains a bookmark ID foruniquely identifying a bookmark object (BM objectID) 210, a unique ID ofa bookmarked object (Bookmarked ObjectID) 211, a bookmark title writtenin a user-readable format (e.g., character string) (Title) 212, abookmark object class (Object Class) 213, a unique device number (UDN)for storing the ID of the rendering control service (RenderingControlService) and/or the ID of the AVTransport service (AVTS) of the rendererthat is presenting the bookmarked object 214, and a list of statevariables for storing the RenderingControl service state variables(e.g., sound volume or luminance) and the AVTS state variables (e.g.,presentation time) (State Variable List) 215. For example, the bookmarkobject class 213 is newly defined to “object.item.bookmarkitem”.

The bookmark object ID (BM objectID) 210 is determined automaticallyaccording to a predefined rule when a bookmark object is created.Information to be recorded in the bookmark title (Title) 212, thebookmark object class (Object Class) 213, the unique device number (UDN)214, and the list of state variables (State Variable List) 215 isprovided by the AV control point (CP) when the AV control point (CP)makes a request for the creation of a bookmark. The information to becontained in the list of state variables (State Variable List) 215, etc.is received from the media renderer (MR) and provided to the mediaserver (MR).

The procedure for creating a bookmark object of the above structure andmanaging the information thereof will now be described in detail.

FIG. 3 a illustrates the procedure for creating a bookmark in accordancewith an embodiment of the present invention, wherein a content object(also called content item) that is currently being played is bookmarked.

If a user makes a request for bookmarking the content 311 that is beingplayed by a media renderer (not illustrated), a bookmark object (alsocalled bookmark item) is created by using “CreateObject” action definedby the UPnP AV standard.

The procedure will be described in more detail. If the user makes arequest for bookmarking the content being played, (S301), the controlpoint 320 requests the RenderingControl service and AVTS of the mediarenderer to provide the state variables for the content and receives thestate variables through “GetStateVariables( )” action (S302). Thecontrol point 320 is a control application capable of detecting andcontrolling other devices and/or services. The control point 320 isexecuted on a device having a user-friendly environment such as a PDA.The control point 302 can be incorporated into the media renderer.

If the streaming from the media server 310 to the media renderer is donein push mode wherein AVIS is executed on the media server 310, thecontrol point 320 receives the state variables of AVTS from the mediaserver 310.

The control point 320 calls “CreateObject action” so that the contentdirectory service (CDS) of the media server 310 creates a bookmarkobject. Bookmark information to be contained in the bookmark object isalso provided as arguments to the action (S303). The bookmarkinformation is information to be recorded in the fields of the ID of thebookmarked object 211, the title 212, the object class 213, the uniquedevice number (UDN) 214, and the list of state variables 215 shown inFIG. 2. The control point 320 delivers the unique device number (UDN) ofthe RenderingControl service of the media renderer (or the unique devicenumber (UDN) of the AVTS), which was obtained when the control point 320made connection for transmission of the content currently beingstreamed, by storing it in the UDN field.

The information to be stored in the title 212 may be organized into avendor-specific part and a user input part. If the title 212 containsseparate room for the user input part, the control point 320 requeststhe user to enter a desired string for easy identification of thecontent and transfers the user-entered string to the media server 310 asan input argument to “CreateObject” action. Alternatively, the controlpoint 320 can transfer the title of the object to be bookmarked to themedia server 310. The information to be stored in the object class 213is “object.item.bookmarkitem” as mentioned above. Additional informationcan be transferred in different embodiments.

“CreateObject” action for creating the bookmark object and inputarguments thereof are written in a markup language such as XML anddelivered to the media server 310.

Receiving the action, the content directory service (CDS) of the mediaserver 310 creates a bookmark object based on the information containedin the input arguments to the action. The ID of the bookmark object isgenerated according to a predefined rule and recorded in the bookmarkobject ID (BM ObjectID) field 210 (S304).

Before creating the bookmark object, the content directory service (CDS)of the media server 310 first determines if bookmark objects having thesame information contained in the input arguments to the “CreateObject”action exist. A bookmark object is newly created only when there is nosuch bookmark.

The existing UPnP AV standard requires that every content should becontained in a root object having the ID of “0”. In the preferredembodiment of the present invention shown in FIG. 1, however, there is aseparate directory structure exclusively for storing bookmark objects.In this embodiment, general browsing actions show only the directory forstoring contents. The directory for storing bookmark objects is shown byonly special actions. Like the ID of the root object of the contentdirectory, the ID of the root object of the bookmark directory ispredefined (e.g., “bookmark_holder”).

It is also possible to place the container for storing bookmark objectsin a special container under the root container “0”.

If the control point 320 set the parentobjectID to “bookmark_holder”when calling the “CreateObject” action, the content directory service(CDS) of the media server 310 creates the bookmark object under the rootcontainer 312 the ID of which is “bookmark_holder”.

After creating the bookmark object as described above, the contentdirectory service (CDS) of the media server 310 adds the ID of thecreated bookmark object to the metadata describing the property of thebookmarked object, i.e., the content being played. In other words, thecontent directory service (CDS) updates the information about thebookmarked object (S305). The reason for linking the bookmark object andthe bookmarked object by storing the ID of the bookmark object in thebookmarked object is to update also the bookmark object linked to thecontent object when the content object is changed.

For example, if the content object linked to the bookmark object isremoved, the bookmark object is not valid any more. In this case, whenthe content object is removed, the bookmark object linked to the contentobject is detected using the stored bookmark object ID and the linkedbookmark object is removed as well.

After creating the bookmark object and updating the metadata of thelinked content object, the content directory service (CDS) of the mediaserver 310 transfers the ID of the created bookmark object and theupdated metadata of the content object to the control point 320 (S306and S307) so that the control point 320 can update its information aboutobjects and bookmarks that have been received through a previousbrowsing action. The information transfer can be done through a reply tothe “CreateObject action for creating the bookmark object or through anevent generated by a change in the information about objects managed bythe content directory service (CDS).

FIG. 3 b illustrates another embodiment of the present invention. Thecontent directory service (CDS) of the media server 310 creates arequested bookmark object (S314) and transfers the ID of the createdbookmark object to the control point 320 (S315). Receiving the ID, thecontrol point 320 constructs complete information on the bookmark object(including the ID) and records the link information for the bookmarkobject (i.e., the ID of the bookmark object) in the metadata of thecontent object to be bookmarked. The control point 320 then makes arequest for updating the metadata of the content object to the mediaserver 310 (S316) so that the content directory service (CDS) of themedia server 310 adds the ID of the bookmark object to the contentobject (S317), thereby allowing synchronization of data related to thebookmark object.

If more than one request for bookmarking one content is received, themedia server 310 creates bookmark objects as many as the number of therequests in the corresponding bookmark container as shown in FIG. 4 andrecords the ID of each of the created bookmark objects in the metadataof the content object.

In the example shown in FIG. 4, a content object having the ID of “30”is linked to 4 bookmark objects (402) generated by 4 bookmarking actions(401). Each of the bookmark objects contains the ID of the linkedcontent object “30”. The metadata 403 of the content object alsocontains the IDs of the 4 linked bookmark objects (“1”, “2”, “3”, and“4”).

The procedure for searching bookmarks registered as described above isdescribed below.

To search a bookmark object, the control point 320 makes a request forbrowse action to the media server 310 with setting the parentobjectIDfield to “bookmark_holder” (or the ID of the container wherein bookmarkobjects are stored). If the directory for bookmark objects is separatedfrom the directory for contents, only the bookmark objects are foundwhile the content items and/or containers are found together when therequest for “browse” action is made with parentobjectID field set to“0”.

The control point 320 may make a request for “browse bookmark” action,which has the same function as “browse” action, to the media server 310with setting the root ID to “0” instead of setting to the root ID of thebookmark object directory structure (e.g., “bookmark_holder”). If“browse bookmark” action is requested, the content directory service(CDS) of the media server 310 interprets the value of the parentobjectIDfield which is set to “0” as the root ID of the bookmark objectdirectory structure (e.g., “bookmark_holder”) and searches the childitems, i.e., bookmark objects, wherein the parentobjectID is deliveredas an input argument to the action. The detected bookmark objects aretransferred to the control point 320 as the result of “browse bookmark”action.

The syntax for specifying the number of bookmark objects to retrieve andfrom which object the search operation starts in “browse bookmark”action is the same as the syntax of “browse” action.

To delete a bookmark object, “DestroyObject” action is used with thesame syntax for deleting a content object. When a bookmark object isdeleted, the content directory service (CDS) of the media server 310removes the ID of the bookmark object from the metadata of thebookmarked object linked to the bookmark object. The updated objectinformation is provided to the control point 320 in an appropriatemanner so that media server 310 and the control point 310 cansynchronize their object information.

The present invention allows a user to bookmark content objects as manyas required at any position, thereby providing a more convenientenvironment for playing contents.

The present invention automatically executes editing operations requiredfor management of bookmarks and contents by effectively linking createdbookmarks and content objects, thereby facilitating the bookmarkmanagement.

While the invention has been disclosed with respect to a limited numberof embodiments, those skilled in the art, having the benefit of thisdisclosure, will appreciate numerous modifications and variationstherefrom. It is intended that all such modifications and variationsfall within the spirit and scope of the invention.

1. A method for managing a bookmark item and a content item, the methodperformed by a controller and comprising: transmitting, to a server, acreating request for creating the bookmark item using rendering stateinformation and transporting state information, wherein the bookmarkitem is created according to the creating request and the content itemis updated to include a bookmark ID of the created bookmark item that isassociated with the content item; and transmitting, to the server, adeleting request to instruct the server to perform a content deletingoperation, wherein the content deleting operation comprises: searchingfor a bookmark item associated with a content item to be deletedaccording to the deleting request, the bookmark item searched using abookmark identifier (ID) included in the content item; deleting thecontent item according to the deleting request; and deleting thesearched bookmark item that comprises the bookmark ID, the renderingstate information, the transporting state information, and a content IDof the associated content item, wherein the transporting stateinformation is associated with an audio/video (AV) transport service andincludes at least presentation time, wherein the rendering stateinformation is associated with a rendering control service and includesat least audio volume or display luminance, and wherein the bookmarkitem is used for recovering the rendering state information and thetransporting information associated with playback of the content item.2. The method of claim 1, wherein the bookmark ID is generated by theserver.
 3. A controller for managing a bookmark item and a content item,the controller comprising: a hardware control unit configured to:transmit, to a server, a creating request for creating the bookmark itemusing rendering state information and transporting state information,wherein the bookmark item is created according to the creating requestand the content item is updated to include a bookmark ID of the createdbookmark item that is associated with the content item; and generate adeleting request that instructs the server to perform a content deletingoperation; and an interface unit configured to transmit the deletingrequest to the server, wherein the content deleting operation comprises:searching for a bookmark item associated with a content item to bedeleted according to the deleting request, the bookmark item searchedusing a bookmark identifier (ID) included in the content item; deletingthe content item according to the deleting request; and deleting thesearched bookmark item that comprises the bookmark ID, the renderingstate information, the transporting state information, and a content IDof the associated content item, wherein the transporting stateinformation is associated with an audio/video (AV) transport service andincludes at least presentation time, wherein the rendering stateinformation is associated with a rendering control service and includesat least audio volume or display luminance, and wherein the bookmarkitem is used for recovering the rendering state information and thetransporting information associated with playback of the content item.4. The controller of claim 3, wherein the bookmark is generated by theserver.